home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3.2 / Ham Radio Version 3.2 (Chestnut CD-ROMs)(1993).ISO / rtty / commpc / commpc.bas next >
BASIC Source File  |  1987-04-17  |  16KB  |  299 lines

  1. 00010 LONGFN CSRLIN
  2. 00020 line%=0
  3. 00030 MACHLG &33,&DB,&B4,3,&CD,&10,&88,&36,line%
  4. 00040 ENDFN = line%
  5. 01000 DEFINT A-Z: CLS: WIDTH LPRINT=79
  6. 01010 DIM O$(4), F$(4), SO(4), E(4), S$(4)
  7. 01110 DIM BATBL(2,30), ABTBL(90), in$(20), TA$(10), TX$(20): GOTO 4200
  8. 01120 DIM 31 BA$(1), 31 BAL$(1), 31 BAF$(1), 79 U$(1), 60 MNTH$(1)
  9. 01130 GOTO 4200
  10. 01200 TIM=TIM+1: K$=INKEY$: IF INP(&H3FD) AND 1 THEN READ#-1,R$;1 ELSE RETURN
  11. 01300 IF R$=CHR$(0) OR R$=CHR$(12) THEN RETURN
  12. 01400 Z$=R$: PRINT Z$;: RETURN
  13. 01500 TIM=TIM+1: K$=INKEY$: IF INP(&H3FD) AND 1 THEN READ#-1,R$;1 ELSE RETURN
  14. 01510 A=ASC(R$)
  15. 01600 IF A=27 THEN BA$=BAF$: RETURN
  16. 01700 IF A=31 THEN BA$=BAL$: RETURN
  17. 01800 IF USOS THEN IF A=4 OR A=2 THEN BA$=BAL$
  18. 01900 Z$=MID$(BA$,A,1): PRINT Z$;: RETURN
  19. 02020 B=A: IF B=13 THEN GOSUB 2900: B=0: GOSUB 2900: B=10: GOSUB 2900: PRINT: IF P THEN  LPRINT: RETURN ELSE RETURN
  20. 02025 IF B=29 THEN LOCATE FN CSRLIN,0: B=13: GOSUB 2900: RETURN
  21. 02030 PRINT CHR$(A);: GOTO 2800
  22. 02090 IF A=43 THEN FOR I1=1 TO 12: B=31: GOSUB 2900: NEXT: L=1: RETURN
  23. 02100 IF A=32 AND USOS AND L=0 THEN L=1: B=31: GOSUB 2900: GOTO 2700
  24. 02110 IF A=96 THEN U$=LEFT$(TIME$,2)+ MID$(TIME$,4,2)+ "Z ": U=6: GOTO 10100
  25. 02200 IF A=37 THEN MO$=LEFT$(DATE$,2): MO=VAL(MO$): MO=MO*5-4: U$=LEFT$(TIME$,2)+MID$(TIME$,4,2)+"Z "+MID$(DATE$,4,2)+MID$(MNTH$,MO,5)+RIGHT$(DATE$,2)+" ": U=LEN(U$): GOTO 10100
  26. 02300 IF A=42 THEN B=8: GOSUB 2900: GOSUB 2900: PRINT CHR$(13);: RETURN
  27. 02310 IF A=60 THEN B=31: L=1: GOTO 2900
  28. 02320 IF A=62 THEN B=27: L=0: GOTO 2900
  29. 02330 IF A=61 THEN B=2: A=10: PRINT: GOTO 2800
  30. 02400 IF A=13 THEN IF P THEN  LPRINT: GOTO 3000 ELSE 3000
  31. 02450 IF A>96 AND A<123 THEN A=A-64
  32. 02500 IF A>32 AND A<65 AND L=1 THEN B=27: GOSUB 2900: L=0: GOTO 2700
  33. 02600 IF A>64 AND L=0 THEN B=31: GOSUB 2900: L=1
  34. 02700 B=ABTBL(A): PRINT CHR$(A);
  35. 02800 IF P THEN LPRINT CHR$(A);
  36. 02810 IF A=13 AND P THEN LPRINT
  37. 02900 K$=INKEY$: TIM=TIM+1: IF TIM>100 THEN GOSUB 25000
  38. 02901 IF K$="" THEN 2990
  39. 02905 IF K$=CHR$(27) THEN ON ERROR GOSUB 65535: CLOSE 3: ERROR=0: ON ERROR RETURN: GOTO 5500
  40. 02910 IF LEN(K$)=1 THEN GOSUB 7800: GOTO 2990 ELSE K$=RIGHT$(K$,1)
  41. 02920 IF K$=CHR$(37) THEN OM=MM: MM=17: GOSUB 8400: GOSUB 8500: MM=OM: GOSUB 8400: GOTO 2990
  42. 02930 IF K$=CHR$(48) THEN BC=1: GOTO 2990
  43. 02940 GOSUB 24000
  44. 02990 IF INP(&H3FD) AND 32 THEN PRINT#-1,CHR$(B);: RETURN ELSE 2900
  45. 03000 PRINT: FOR I1=1 TO 3: EL$=MID$(EOL$,I1,1): B=ASC(EL$): GOSUB 2900: NEXT: IF USOS AND L=O THEN B=31: GOSUB 2900: L=1: RETURN
  46. 03100 IF B=31 THEN L=1: RETURN ELSE RETURN
  47. 03200 GOSUB 30000
  48. 03290 T$=M$: T=6: GOSUB 3800
  49. 03300 DO
  50. 03310 ON ERROR GOSUB 65535: READ#3,T9$;1
  51. 03320 IF ERROR=769 THEN ERROR=0: T9$=CHR$(26): ON ERROR RETURN: GOTO 3705
  52. 03330 ON ERROR RETURN: IF T9$= CHR$(10) THEN 3705
  53. 03340 IF T9$=CHR$(13) THEN 3400
  54. 03350 T$=T$+T9$: GOTO 3310
  55. 03400 T=LEN(T$): IF T=0 THEN ON CODE GOSUB 3710,4100: GOTO 3705
  56. 03500 T99$=LEFT$(T$,4): IF T99$<>"NNNN" THEN 3600 ELSE T$=RIGHT$(T$,T-4): T=T-4: U$="NNNN+": U=5: GOSUB 10100
  57. 03600 T99$=LEFT$(T$,4): IF T99$<>"ZZZZ" THEN 3700 ELSE T$=RIGHT$(T$,T-4): T=T-4: U$="ZZZZ+": U=5: GOSUB 10100
  58. 03700 IF T<>0 THEN GOSUB 3800
  59. 03705 UNTIL T9$=CHR$(26)
  60. 03707 CLOSE 3: RETURN
  61. 03710 A=13: GOTO 2020
  62. 03800 FOR I=1 TO T
  63. 04000 AA$=MID$(T$,I,1): A=ASC(AA$): ON CODE GOSUB 2020,2090: NEXT: T$="": A=13: ON CODE GOTO 2020,2090
  64. 04100 ON CODE GOTO 4110,4120
  65. 04110 A=13: GOTO 2020
  66. 04120 B=2: PRINT: GOTO 2800
  67. 04200 BAL$="E"+CHR$(10)+"A SIU"+CHR$(13)+"DRJNFCKTZLWHYPQOBGfMXVl"
  68. 04210 BAF$="3"+CHR$(10)+"- @87"+CHR$(13)+"$4',!:(5"+CHR$(34)+")2#6019?&f./;l"
  69. 04220 FOR D=32 TO 95: READ ABTBL(D): NEXT D: DSK=1
  70. 04250 FOR TT=1 TO 20: READ XX$: TX$(TT)=XX$: NEXT TT
  71. 04400 MNTH$=" JAN  FEB  MAR  APR  MAY  JUN  JUL  AUG  SEP  OCT  NOV  DEC "
  72. 04500 FOR I=0 TO 20: in$(I)="": NEXT
  73. 04501 In=1: PRINT "ENTER DRIVE:FILENAME OF YOUR CONFIGURATION FILE"
  74. 04502 INPUT "OR HIT ENTER TO ANSWER FROM THE KEYBOARD ? ";N$
  75. 04503 IF N$="" THEN filin=1 ELSE GOSUB 30000: GOSUB 32000: filin=0
  76. 04505 DEF PAGE 0,0 TO 79,24: CLS: LOCATE 0,0,1,0,7
  77. 04510 PRINT "HOW MANY LINES OF TYPE AHEAD BUFFER WOULD YOU LIKE (1-10) ";: GOSUB 32400
  78. 04511 TAW=VAL(in$(In-1)): IF TAW>10 OR TAW<1 THEN IF filin THEN 4510 ELSE GOSUB 32500: GOTO 4510
  79. 04520 YRCV=22-TAW: YTIM=23-TAW: YTB=24-TAW: YTE=24
  80. 04600 FOR JJ=1 TO TAW: TA$(JJ)="": NEXT: TA=1: YT=YTB: XT=0
  81. 04606 YR=FN CSRLIN: XR=POS(0): LOCATE 0,YTIM,1,0,7: FOR JJ=1 TO 80: PRINT CHR$(205);: NEXT JJ
  82. 04607 DEF PAGE 0,0 TO 79,YRCV
  83. 04610 LOCATE XR,YR,1,0,7: PRINT "DISK TO USE FOR RECEIVE STORAGE ";: GOSUB 32400: DSK$=in$(In-1)
  84. 04710 PRINT "ENTER HAM CALL ";: GOSUB 32400: CAH$=in$(In-1)
  85. 04720 PRINT "ENTER MARS CALL ";: GOSUB 32400: CAM$=in$(In-1)
  86. 04800 PRINT "(H)am or (M)ARS use ";: GOSUB 32400: I$=in$(In-1)
  87. 04900 IF I$="H" THEN CA$=CAH$: EOL$= CHR$(8)+ CHR$(2)+ CHR$(31): W=2: XS=11: YS=24: TEXT$=TX$(1): GOSUB 19900: GOTO 5100
  88. 05000 IF I$="M" THEN CA$=CAM$: EOL$=CHR$(8)+ CHR$(8)+ CHR$(2): W=2: XS=11: YS=24: TEXT$=TX$(2): GOSUB 19900 ELSE IF filin THEN 4800 ELSE GOSUB 32500: GOTO 4800
  89. 05100 FOR I=49 TO 52: PRINT "SELCAL TURN ON  <"+CHR$(I)+"> ";: GOSUB 32400: O$(I-48)=in$(In-1): PRINT "SELCAL TURN OFF <"+CHR$(I)+"> ";: GOSUB 32400: F$(I-48)=in$(In-1)
  90. 05102 SO(I-48)=LEN(O$(I-48)): E(I-48)=LEN(F$(I-48)): NEXT: O=1: son=0
  91. 05104 SS=SO(1): FOR I=2 TO 4
  92. 05106 IF SO(I)>SO(I-1) THEN SS=SO(I)
  93. 05108 NEXT
  94. 05110 PRINT "(A)SCII or (B)audot ";: GOSUB 32400: CODE$=in$(In-1): IF CODE$="A" THEN CODE$="ASCII": CODE=1: GOTO 5122
  95. 05120 IF CODE$="B" THEN CODE$="Baudot": CODE=2 ELSE IF filin THEN 5110 ELSE GOSUB 32500: GOTO 5110
  96. 05122 PRINT "ENTER DESIRED BAUD RATE ";: GOSUB 32400: BD$=in$(In-1): BD=VAL(BD$)
  97. 05134 L=1: USOS=0: S=0: P=0: son=0
  98. 05136 TEXT$=BD$+" baud "+ CODE$:W=2: XS=16: YS=24: GOSUB 19900: TEXT$=TX$(3): W=2: XS=68: YS=24: GOSUB 19900
  99. 05138 ON CODE GOTO 5140,5200
  100. 05140 PRINT "WHAT PARITY (Odd, Even or None) ";: GOSUB 32400: PA$=in$(In-1)
  101. 05142 PRINT "HOW MANY DATA BITS (7 or 8) ";: GOSUB 32400: DA=VAL(in$(In-1))
  102. 05144 IF PA$="O" THEN PAR=1
  103. 05146 IF PA$="E" THEN PAR=2 ELSE PAR=3
  104. 05148 IF DA=8 THEN DA=1 ELSE DA=0
  105. 05149 PRINT "HOW MANY STOP BITS (1 or 2) ";: GOSUB 32400: STP=VAL(in$(In-1))
  106. 05150 IF STP=1 THEN STP=0 ELSE STP=1
  107. 05151 T0$="U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U* DE "+CA$
  108. 05152 T1$="U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*U*": T1$=T1$+T1$: T2$=T1$
  109. 05153 M$=STRING$(12,0)+"     ": M1$=CHR$(0)+CHR$(0)+"     ": TA$(0)=M$+ CHR$(13)
  110. 05154 OPEN "C",-1,BD,PA,STP,,0: GOTO 5430
  111. 05200 DI=1843200/(BD*16):DM=DI/256:DM=INT(DM):DL=DI MOD 256
  112. 05210 OPEN "C",-1,110,,,,0,3
  113. 05220 OUT &H3FB,128: OUT &H3F8,DL: OUT &H3F9,DM: OUT &H3FB, 4: OUT &H3F9,0
  114. 05300 T0$="THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 1234567890 DE "+CA$
  115. 05400 T0$=T0$+CHR$(42)+T0$: M$="+     ": M1$="<<     ": TA$(0)=M$+CHR$(13)
  116. 05410 T1$="RYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRY": T1$=T1$+T1$
  117. 05420 T2$="SGSGSGSGSGSGSGSGSGSGSGSGSGSGSGSG": T2$=T2$+T2$
  118. 05430 T3$="NNN0ALS NNN0ALS NNN0ALS DE "+CA$+" "+CA$+" "+CA$
  119. 05500 GOSUB 25000: MM=10: GOSUB 8400: GOSUB 26000
  120. 05600 Z$="": ON CODE GOSUB 1200, 1500: IF TIM>100 THEN GOSUB 25000
  121. 05610 IF LEN(PRTBUF$) THEN GOSUB 31000
  122. 05650 IF Z$="" THEN 6200
  123. 05800 IF son THEN ON O GOSUB 13100,13200
  124. 05900 IF P THEN PRTBUF$=PRTBUF$+Z$
  125. 06005 IF Z$=CHR$(13) THEN 6200
  126. 06010 IF S AND Z$=CHR$(10) THEN PRINT#2,"": GOTO 6200
  127. 06100 IF S THEN PRINT#2,Z$;
  128. 06200 IF K$="" THEN 5600
  129. 06250 IF LEN(K$)>1 THEN 6500
  130. 06300 A=ASC(K$): GOSUB 7800: GOTO 5600
  131. 06500 K$=RIGHT$(K$,1): A=ASC(K$): IF A=32 THEN GOSUB 21000: GOTO 5600
  132. 06800 IF A=18 THEN CLR=TA: FOR J1=1 TO TA: TA$(J1)="": NEXT: TA=1: YT=23: XT=79: W=3:  TEXT$=STRING$(CLR,10): GOSUB 19900: YT=YTB: XT=0: GOTO 5600
  133. 06900 IF A=38 THEN SPA=LEN(TA$(TA)): TA$(TA)="": W=3: XT=0: TEXT$=SPACE$(SPA): GOSUB 19900: XT=0: GOTO 5600
  134. 06910 DO: GOSUB 31000: UNTIL PRTBUF$=""
  135. 07000 IF A=37 THEN MM=11: GOSUB 8300: GOSUB 8500: GOTO 5500
  136. 07100 IF A=33 THEN MM=12: GOSUB 8300: GOSUB 10200: GOTO 5500
  137. 07200 IF A=20 THEN MM=13: GOSUB 8300: GOSUB 10300: GOTO 5500
  138. 07300 IF A=16 THEN MM=14: GOSUB 8300: GOSUB 10700: GOTO 5500
  139. 07400 IF A=45 THEN PRINT#2,CHR$(26);: CLOSE: GOSUB 18000: CLS: END
  140. 07500 IF A=46 THEN PRINT#2,CHR$(26);: CLOSE: GOSUB 18000: CLS: GOTO 4500
  141. 07600 IF A=48 THEN MM=15: GOSUB 8300: GOSUB 10800: GOTO 5500
  142. 07700 IF A=50 THEN MM=16: GOSUB 8300: GOSUB 11500: GOTO 5500
  143. 07750 GOSUB 24000: GOTO 5600
  144. 07800 IF YT=YTE THEN K$="": RETURN
  145. 07900 IF K$=CHR$(13) AND YT=YT-1 THEN YT=YTE
  146. 07950 IF K$=CHR$(8) THEN IF XT>0 THEN XT=XT-1: TEXT$=" ":W=3: K$="": GOSUB 19900: TAZ=LEN(TA$(TA)): TA$(TA)=LEFT$(TA$(TA),TAZ-1): RETURN ELSE RETURN
  147. 08100 TA$(TA)=TA$(TA)+K$: TEXT$=K$: W=3: GOSUB 19900
  148. 08200 IF K$=CHR$(13) THEN YT=YT+1: XT=0: TA=TA+1: K$="": RETURN 
  149. 08250 XT=XT+ LEN(K$): K$="": RETURN
  150. 08300 PRINT#2,CHR$(26);: CLOSE 2
  151. 08400 TEXT$=TX$(MM): W=2: XS=0: YS=24: GOTO 19900
  152. 08500 K$=INKEY$:TIM=TIM+1: IF TIM>100 THEN GOSUB 25000
  153. 08550 TIM=TIM+1: IF TIM>100 THEN GOSUB 25000
  154. 08600 IF K$="" THEN 8500
  155. 08650 IF K$=CHR$(27) THEN RETURN
  156. 08700 A=ASC(K$): IF LEN(K$)=1 THEN ON CODE GOSUB 2020,2090: GOTO 8500
  157. 08710 K$=RIGHT$(K$,1): A=ASC(K$)
  158. 08800 IF A=30 THEN 8850 ELSE 9300
  159. 08850 U$=TA$(0): U=LEN(U$): GOSUB 10100
  160. 08900 FOR JJ=1 TO TA: TT$=TA$(JJ): TT=LEN(TT$)
  161. 09000 FOR I2=1 TO TT: T88$=MID$(TT$,I2,1): A=ASC(T88$): ON CODE GOSUB 2020,2090: NEXT
  162. 09100 W=3: XT=79: YT=23: TEXT$=CHR$(10): GOSUB 19900: TA$(JJ)="": NEXT
  163. 09200 TA=1: YT=YTB: XT=0: GOTO 8500
  164. 09300 IF A=23 THEN U$="DE "+CA$+" ": U=LEN(U$): GOSUB 10100: GOTO 8500
  165. 09400 IF A=59 THEN RETURN
  166. 09500 IF A=19 AND MM=17 THEN RETURN
  167. 09600 GOSUB 24000
  168. 09800 GOTO 8500
  169. 10100 FOR J=1 TO U: U99$=MID$(U$,J,1): A=ASC(U99$): ON CODE GOSUB 2020,2090: NEXT: RETURN
  170. 10200 PRINT: INPUT "FILENAME ? "; N$: GOTO 3200
  171. 10300 Q=1
  172. 10400 T$=M$: T=LEN(T$): GOSUB 3800
  173. 10500 T$=T0$: T=LEN(T$): GOSUB 3800
  174. 10600 T$=T1$: T=64: GOSUB 3800: IF Q THEN 10400 ELSE RETURN
  175. 10700 PRINT: Q=0: INPUT "FILENAME ? "; N$: GOSUB 30000: GOSUB 10400: T$="ZUJ FOR TRAFFIC .....": T=LEN(T$): GOSUB 3800: GOSUB 4100: GOSUB 4100: GOTO 3290
  176. 10800 PRINT: BC=0: INPUT "BROADCAST FILENAME ? ";N$: GOSUB 30000
  177. 10850 INPUT "BROADCAST DESIGNATOR (e.g., 8L9W) ? ";NET$: NET$=" "+NET$
  178. 10860 T4$=T3$+NET$+NET$+NET$
  179. 10900 T$=M$: T=6: GOSUB 3800
  180. 11000 T$=T4$: T=LEN(T$): GOSUB 3800
  181. 11100 T$=T1$: T=64: GOSUB 3800
  182. 11200 T$=T2$: T=64: GOSUB 3800
  183. 11300 IF BC=0 THEN 10900
  184. 11400 GOSUB 4100: GOSUB 4100: T$="ZUJ BROADCAST FOLLOWS .....": T=LEN(T$): GOSUB 3800: FOR II=1 TO 4: GOSUB 4100: NEXT: B=31: L=1: GOSUB 2900: GOTO 3290
  185. 11500 PRINT: INPUT "NAME OF FILE CONTAINING MESSAGE ";N$: MF=0
  186. 11550 IF N$="QUIT" THEN RETURN
  187. 11600 IF N$="" THEN 11500 ELSE GOSUB 30000
  188. 11700 PRINT "ENTER MESSAGE NUMBER TO BE SENT (e.g. NR001) "
  189. 11800 INPUT "OR TYPE QUIT AND ENTER TO RETURN TO RECEIVE ? "; MN$
  190. 11900 IF MN$="QUIT" THEN CLOSE 3: ERROR=0: ON ERROR RETURN: RETURN
  191. 11950 IF MN$="" THEN 11700
  192. 12000 MN=LEN(MN$)
  193. 12100 ON ERROR GOSUB 65535
  194. 12110 IF ERROR=769 THEN CLOSE 3: ERROR=0: OPEN "I",3,N$: MF=MF+1
  195. 12200 IF MF=2 THEN CLOSE 3: PRINT "MESSAGE NOT FOUND": MF=0: OPEN "I",3,N$: ERROR=0: ON ERROR RETURN: GOTO 11700
  196. 12300 LINEINPUT#3,T$: T=LEN(T$): IF ERROR THEN 12110
  197. 12400 T77$=LEFT$(T$,4): IF T77$="NNNN" THEN T$=RIGHT$(T$,T-4): T=T-4
  198. 12500 MN1$=LEFT$(T$,MN): IF MN1$=MN$ THEN U$=M$: U=6: GOSUB 10100: A=13: ON CODE GOSUB 2020,2400 ELSE 12110
  199. 12600 GOSUB 3800
  200. 12700 LINEINPUT#3,T$: T=LEN(T$): IF ERROR THEN 12110
  201. 12800 T66$=LEFT$(T$,4): IF T66$="NNNN" THEN U$="NNNN+": U=5: GOSUB 10100: MF=0: PRINT: ERROR=0: ON ERROR RETURN: GOTO 11700
  202. 12900 IF T=0 THEN GOSUB 4100: GOTO 12700
  203. 13000 GOSUB 3800: IF ERRORTHEN 12110 ELSE 12700
  204. 13100 S$=S$+Z$: S$=RIGHT$(S$,SS)
  205. 13110 FOR IS=1 TO 4
  206. 13120 S$(IS)=RIGHT$(S$,SO(IS))
  207. 13130 IF S$(IS)=O$(IS) THEN F$=F$(IS): E=E(IS): ZZ$=MID$(S$,SS-SO(IS)+1,SO(IS)-1): PRINT#2,ZZ$;: O=2: IF PRT THEN P=1: LPRINT ZZ$;: GOTO 21100 ELSE 21100
  208. 13140 NEXT: RETURN
  209. 13200 S$=S$+Z$: S$=RIGHT$(S$,E): IF S$<>F$ THEN RETURN ELSE PRINT#2,Z$
  210. 13210 IF PRT AND P THEN LPRINT Z$;: P=0
  211. 13220 GOTO 21200
  212. 13700 DATA 04,13,17,20,09,00,26,11,15,18,31,31,12,03,28
  213. 13800 DATA 29,22,23,19,01,10,16,21,07,06,24,14,30,31,02
  214. 13900 DATA 27,25,05,03,25,14,09,01,13,26,20,06,11,15,18
  215. 14000 DATA 28,12,24,22,23,10,05,16,07,30,19,29,21,17,31,31,31,31,31
  216. 14300 DATA "HAM ","MARS","PRINTER OFF","SAVING TO DISK"
  217. 14400 DATA "              ","    ","USOS","N ","FF"
  218. 14500 DATA "RECEIVE   ","KEYBOARD  ","FILE XMIT ","TEST TAPE "
  219. 14600 DATA "QBF + FILE","BROADCAST ","MESSAGE NR","KYBD INT  "
  220. 14700 DATA "SELCAL","      ","PRTSEL"
  221. 18000 DEF PAGE 0,0 TO 79,24: LOCATE 0,0,1,0,7: RETURN
  222. 19900 XR=POS(0): YR= FN CSRLIN
  223. 19920 IF W=2 THEN DEF PAGE 0,24 TO 79,24: LOCATE XS,YS,1,0,7: PRINT TEXT$;: GOTO 19940
  224. 19930 IF W=3 THEN DEF PAGE 0,YTB TO 79,23: LOCATE XT,YT,1,0,7: PRINT TEXT$;
  225. 19940 DEF PAGE 0,0 TO 79,YRCV: LOCATE XR,YR,1,0,7: RETURN
  226. 21000 IF S=0 THEN 21100 ELSE 21200
  227. 21100 S=1: TEXT$=TX$(4): GOTO 21300
  228. 21200 S=0: O=1: TEXT$=TX$(5)
  229. 21300 W=2: XS=49: YS=24: GOTO 19900
  230. 22000 IF USOS=1 THEN 22100 ELSE 22200
  231. 22100 USOS=0: TEXT$=TX$(6): GOTO 22300
  232. 22200 USOS=1: TEXT$=TX$(7)
  233. 22300 W=2: XS=42: YS=24: GOTO 19900
  234. 23000 IF P=0 THEN 23100 ELSE 23200
  235. 23100 P=1: TEXT$=TX$(8): GOTO 23300
  236. 23200 P=0: TEXT$=TX$(9):
  237. 23300 W=2: XS=77: YS=24: GOTO 19900
  238. 23400 IF son=0 THEN 23500 ELSE 23600
  239. 23500 son=1: PRT=0: TEXT$=TX$(18): GOTO 23700
  240. 23600 son=0: TEXT$=TX$(19)
  241. 23700 W=2: XS=33: YS=24: GOTO 19900
  242. 23800 IF son=0 THEN 23810 ELSE 23820
  243. 23810 son=1: PRT=1: TEXT$=TX$(20): GOTO 23830
  244. 23820 son=0: PRT=0: P=0: TEXT$=TX$(19)
  245. 23830 W=2: XS=33: YS=24: GOTO 19900
  246. 24000 IF A=25 THEN 23000
  247. 24050 IF A=31 THEN 23400
  248. 24100 IF A=22 THEN 22000
  249. 24200 IF A=35 THEN 23800 ELSE RETURN
  250. 25000 XR=POS(0): YR=FN CSRLIN: DEF PAGE 0,YTIM TO 79,YTIM: LOCATE 34,YTIM,1,0,7
  251. 25100 PRINT "  "+LEFT$(TIME$,5)+"Z  ";:DEF PAGE 0,0 TO 79,YRCV
  252. 25200 LOCATE XR,YR,1,0,7: TIM=0: RETURN
  253. 26000 MO$=LEFT$(DATE$,2): MO=VAL(MO$): MO=MO*5-3: Month$=MID$(MNTH$,MO,3)
  254. 26100 Day$=MID$(DATE$,4,2): Year$=RIGHT$(DATE$,2): Extnew$=".TFC": Extold$=".BAK"
  255. 26200 Filename$=Month$+Day$+Year$
  256. 26300 NewFilename$=DSK$+Filename$+Extnew$
  257. 26400 OldFilename$=DSK$+Filename$+Extold$
  258. 26500 ON ERROR GOSUB 65535
  259. 26600 OPEN "I",1,NewFilename$
  260. 26700 IF ERROR=259 THEN GOSUB 28000: RETURN
  261. 26710 ON ERROR RETURN
  262. 26720 IF LOF(1)=0 AND LOC(1)=0 THEN CLOSE 1: OPEN "O",2,NewFilename$: RETURN
  263. 26800 CLOSE 1: RENAME NewFilename$ TO OldFilename$: OPEN "I",1,OldFilename$: OPEN "O",2,NewFilename$
  264. 26900 DO
  265. 27000 READ#1,V$;1: IF V$=CHR$(26) THEN 27200
  266. 27100 PRINT#2,V$;
  267. 27200 UNTIL USR1(1)
  268. 27300 CLOSE 1: KILL OldFilename$
  269. 27500 RETURN
  270. 28000 ERROR=0: OPEN "O",2,NewFilename$: ON ERROR RETURN: RETURN
  271. 30000 YR=FN CSRLIN: XR=POS(0): ON ERROR GOSUB 65535
  272. 30100 OPEN "I",3,N$
  273. 30200 LONG IF ERROR=771
  274. 30250 DEF PAGE WRITE=1: DEF PAGE READ=1: DEF PAGE 0,0 TO 79,24: CLS 32: LOCATE 0,0,1,0,7
  275. 30300 PRINT "THE FILE YOU SPECIFIED DOES NOT EXIST. ";
  276. 30400 PRINT "EITHER YOU MIS-SPELLED THE  FILENAME OR"
  277. 30500 PRINT "YOU DID NOT SPECIFY THE CORRECT DRIVE. ";
  278. 30600 PRINT "ENTER THE CORRECT FILENAME AND DRIVE OR "
  279. 30700 INPUT "TYPE DIR drive:path TO SEE DIRECTORY ? ";ans$: ans$=UCASE$(ans$)
  280. 30800 ans1$=LEFT$(ans$,3): ans2$=ans$+"/W": IF ans1$="DIR" THEN CLS 32: CALL ans2$ ELSE CLS 32: N$=ans$: ERROR=0: DEF PAGE READ=0: DEF PAGE WRITE=0: DEF PAGE 0,0 TO 79,YRCV: LOCATE XR,YR,1,0,7: GOTO 30100
  281. 30900 GOTO 30600
  282. 30910 ENDIF: ERROR=0: ON ERROR RETURN: RETURN
  283. 31000 PRT$=LEFT$(PRTBUF$,1)
  284. 31100 MACHLG &B4,&2,&CD,&17,&88,&26,Status
  285. 31200 IF Status > 127 THEN RETURN
  286. 31300 LPRINT PRT$;
  287. 31400 IF LEN(PRTBUF$)<2 THEN PRTBUF$="" ELSE PRTBUF$= RIGHT$(PRTBUF$,LEN(PRTBUF$)-1)
  288. 31900 RETURN
  289. 32000 ON ERROR GOSUB 65535
  290. 32100 Inp=1: DO
  291. 32200 LINEINPUT#3,in$: in$(Inp)=in$: Inp=Inp+1
  292. 32300 UNTIL ERROR: CLOSE 3: Inp=1: ERROR=0: ON ERROR RETURN: RETURN
  293. 32400 IF filin THEN INPUT in$(In): In=In+1: RETURN ELSE PRINT in$(In): In=In+1: RETURN
  294. 32500 filin=1: In=In-1
  295. 32600 PRINT "YOUR CONFIGURATION FILE WAS IN ERROR, ENTER OTHER ANSWERS FROM KEYBOARD"
  296. 32700 RETURN
  297. 35
  298. 12110 IF ERROR=769 THEN CLOSE 3: ERROR=0: OPEN "I",3,N$: MF=MF+1
  299. 12200 IF MF=2 TH